home *** CD-ROM | disk | FTP | other *** search
- 100 IFPEEK(46)=017THEN120
- 110 GOTO1160
- 120 POKE999,PEEK(56):POKE56,PEEK(46)+9:CLR:BB=PEEK(56):PRINT"[147]":CX=53281:CL=65511
- 130 N=254:IFPEEK(999)<>160THENN=PEEK(999)
- 140 N=N-BB:BA=BB*256:MA=828:DIMBM%(35,24):FORJ=.TO7:TA(J)=2^J:NEXT:WD=8:FW%=0
- 150 IFPEEK(1005)=234THENWD=9:FW%=1:PRINT" BE SURE DISKS ARE INSERTED"
- 160 POKECX,246:INPUT" TYPE B FOR BAM. D FOR DIRECT";TY$
- 170 INPUT" STARTING TRACK 1[157][157][157]";TA:INPUT" STARTING BLOCK 0[157][157][157]";BS
- 180 INPUT" FINISH TRACK 35[157][157][157][157]";TZ
- 190 PRINTN"BUFFERS AVAIL.":OPEN1,8,15:POKECX,16
- 200 D$="S":GOSUB870
- 210 GOSUB610
- 220 T=TS:S=BS:NU=1:T1=T:S1=S:TF=TZ:CLOSE1:SYSCL
- 230 OPEN1,8,15:PRINT#1,"I":OPEN3,8,3,"#"
- 240 PRINT"READ BLOCK";
- 250 IFBM%(T1,S1)=.THENGOSUB430:NU=NU+1:IFNU>NTHEN280
- 260 S1=S1+1:IFS1>20THENS1=.:T1=T1+1
- 270 IFT1<TF+1THEN250
- 280 PRINT"":CLOSE3:CLOSE1:SYSCL
- 290 D$="D":POKECX,49:GOSUB870
- 300 OPEN1,WD,15:PRINT#1,"I":OPEN3,WD,3,"#"
- 310 PRINT"WRITE BLOCK";
- 320 NU=1:T1=T:S1=S
- 330 IFBM%(T1,S1)=.THENGOSUB520:NU=NU+1:IFNU>NTHEN360
- 340 S1=S1+1:IFS1>20THENS1=.:T1=T1+1
- 350 IFT1<TF+1THEN330
- 360 PRINT"":CLOSE1:CLOSE3:SYSCL
- 370 S=S1+1:IFS>20THENS=.:T1=T1+1
- 380 T=T1:IFT>TFTHEN410
- 390 D$="S":POKE53281,49:GOSUB870
- 400 NU=1:T1=T:S1=S:GOTO230
- 410 CLOSE1:CLOSE3:SYSCL
- 420 POKE56,PEEK(999):CLR:END
- 430 C=0
- 440 PRINT#1,"U1";3;0;T1;S1
- 450 GOSUB860:IFNOTERTHEN470
- 460 C=C+1:IFC<2GOTO440
- 470 PRINT#1,"B-P";3;0
- 480 IFNUTHENPRINTRIGHT$(" "+STR$(T1)+STR$(S1)+" #"+STR$(NU),12)"[157][157][157][157][157][157][157][157][157][157][157][157]";
- 490 P3=PEEK(3):P4=PEEK(4):POKE4,BB+NU:SYSMA:POKE3,P3:POKE4,P4
- 500 IFST<>.ANDST<>64THENGOSUB860:PRINTER$
- 510 RETURN
- 520 C=.:PRINT#1,"B-P";3;0
- 530 PRINTRIGHT$(" "+STR$(T1)+STR$(S1)+" #"+STR$(NU),12)"[157][157][157][157][157][157][157][157][157][157][157][157]";
- 540 P3=PEEK(3):P4=PEEK(4):POKE4,BB+NU:SYSMA+3:POKE3,P3:POKE4,P4
- 550 IFST<>.ANDST<>64THEN920
- 560 PRINT#1,"U2";3;0;T1;S1
- 570 GOSUB860:IFNOTERTHEN600
- 580 C=C+1:IFC<2THEN560
- 590 GOTO920
- 600 RETURN
- 610 TS=TA:TF=0:S9=0
- 620 PRINT#1,"I":OPEN3,8,3,"#"
- 630 PRINT"TRACK# BLOCKS"
- 640 BY=4:NU=0:T1=18:S1=0:C0$=CHR$(.):GOSUB430
- 650 T%=(BY-4)/4+1
- 660 PRINT" ";T%;
- 670 IFPEEK(BA+BY)=.THENFORJ=.TO20:BM%(T%,J)=.:NEXT:BY=BY+4:GOTO720
- 680 S=.
- 690 BY=BY+1:A0=PEEK(BA+BY):FORJ=.TO7:BM%(T%,S)=A0ANDTA(J):S=S+1:NEXT
- 700 IFS<22THEN690
- 710 BY=BY+1
- 720 ES=21:IFT%>17THENES=19
- 730 IFT%>24THENES=18
- 740 IFT%>30THENES=17
- 750 IFTY$="D"THENFORS=.TOES:BM%(T%,S)=.:NEXT
- 760 FORJ=ESTO24:BM%(T%,J)=-1:NEXT
- 770 SM=.:FORJ=.TO20:IFBM%(T%,J)=.THENSM=SM+1
- 780 NEXT:PRINTTAB(12);SM:S9=S9+SM
- 790 IFSM=.ANDTS=T%THENTS=TS+1:GOTO810
- 800 IFSM<>.THENTF=T%
- 810 IFBY<143THEN650
- 820 CLOSE3
- 830 PRINT:PRINTS9"BLOCKS TO TRANSFER"
- 840 PRINTINT(S9*.0408)+1"MIN. FOR COPY"
- 850 RETURN
- 860 INPUT#1,ER$,E1$,E2$,E3$:ER=VAL(ER$):ER$=ER$+E1$+E2$+E3$:RETURN
- 870 IFFW%=1THENPOKECX,16:RETURN
- 880 S1$="SOURCE[146]":IFD$="D"THENS1$="DEST.[146]"
- 890 PRINT" INSERT ";S1$;" DISK, PRESS SPACE[146]"
- 900 A$="A":GETA$:IFA$<>" "THEN900
- 910 POKECX,16:RETURN
- 920 PRINTER$:POKE56,PEEK(999):CLR:STOP
- 930 REM::::DO NOT MODIFY PROGRAM LOWER THAN 930 !
- 940 PRINT"[147][159] THE PROGRAM IS NOW READY TO MAKE COPIES . . . "
- 950 PRINT" TO MAKE MORE ROOM FOR THE COPIES,"
- 960 PRINT" THE PROGRAM WILL NOW HAVE TO ERASE "
- 970 PRINT" THE PORTION YOU HAVE JUST USED! "
- 980 PRINT" DO NOT SAVE PROGRAM AFTER RUNNING"
- 990 PRINT" IF YOU WISH TO MAKE MORE COPIES "
- 1000 PRINT" FORMAT DESTINATION DISKS NOW. "
- 1010 PRINT" PRESS RETURN [146] TO FORMAT MORE DISKS"
- 1020 PRINT" PRESS SPACE [146] TO MAKE COPIES ."
- 1030 K$="A":GETK$:IFK$=""THEN1030
- 1040 IFK$=CHR$(32)THEN1070
- 1050 IFK$=CHR$(13)THEN1520
- 1060 GOTO940
- 1070 FORI=828TO915:READA:POKEI,A:NEXT
- 1080 POKE45,033:POKE46,017:POKE4349,0:POKE4350,0:GOTO120
- 1090 DATA76,66,3,76,97,3,162,3,32,198,255,160,0,132,3,32,207,255,32,138,3
- 1100 DATA145,3,32,128,3,165,144,208,3,200,208
- 1110 DATA238,32,204,255,96,162,3,32,201,255,160,0,132
- 1120 DATA3,32,138,3,177,3,32,128,3,32
- 1130 DATA210,255,165,144,208,3,200,208,238,32,204,255
- 1140 DATA96,72,165,1,9,3,133,1,88,104,96,72,120,165,1,41,252,133,1,104,96
- 1150 IFPEEK(45)=044ANDPEEK(46)=019THEN120
- 1160 PRINT"[147] ";
- 1170 DIMS$(28):DIMN$(28)
- 1180 PRINT" * * * * BACKUP 228 * * * * ";
- 1190 PRINT" ";
- 1200 PRINT" "
- 1210 FORT=1TO1000:NEXT
- 1220 PRINT"[159]'GOTO 920' IF PROGRAM QUITS ABNORMALLY"
- 1230 PRINT" DO NOT SAVE THIS PROGRAM AFTER RUNNING!"
- 1240 PRINT"[159] ";
- 1250 PRINT" ";
- 1260 PRINT" ";
- 1270 PRINT" SOME DISKS HAVE BAD BLOCKS WHICH ";
- 1280 PRINT" MUST BE DONE WITH OTHER PROGRAMS. ";
- 1290 PRINT" ";
- 1300 PRINT" BAD BLOCKS CAN BE DETECTED ON THE ";
- 1310 PRINT" ORIGINAL DISK BY A LOUD CLICKING ";
- 1320 PRINT" NOISE FROM THE DISK DRIVE DURING ";
- 1330 PRINT" THE PROGRAM LOAD. ";
- 1340 PRINT" ";
- 1350 PRINT" "
- 1360 PRINT" PRESS RETURN [146] FOR MORE INSTRUCTIONS"
- 1370 PRINT" PRESS SPACE [146] TO COPY DISKS"
- 1380 K$="A":GETK$:IFK$=""THEN1380
- 1390 IFK$=CHR$(13)THEN2150
- 1400 POKE53281,246:PRINT"[147][159] ";
- 1410 PRINT" BE SURE WRITE PROTECT NOTCH IS COVERED ";
- 1420 PRINT" ";
- 1430 PRINT" ON SOURCE DISK [159]";
- 1440 PRINT" "
- 1450 PRINT" USE THIS PROGRAM TO FORMAT YOUR "
- 1460 PRINT" DESTINATION DISKS. THIS PUTS THE "
- 1470 PRINT" EXACT HEADER AND ID ON THE "
- 1480 PRINT" DESTINATION DISK."
- 1490 INPUT" HOW MANY DISK DRIVES 2[157][157][157]";NU$:IFNU$="2"THENFD=9:GOTO1860
- 1500 POKE1005,120:FD=8:GOTO1530
- 1510 OPEN1,8,15:INPUT#1,ER$,E1$,E2$,E3$:ER=VAL(ER$):ER$=ER$+E1$+E2$+E3$:RETURN
- 1520 POKE53281,246
- 1530 FORT=1TO1000:NEXT:PRINT"[147] INSERT SOURCE[146] DISK THEN PRESS SPACE[146]"
- 1540 K$="A":GETK$:IFK$<>CHR$(32)THEN1540
- 1550 OPEN2,8,0,"$0":GOSUB1510:IFERTHENPRINTER$:GOTO2080
- 1560 FORJ=1TO27:GET#2,S$(J):NEXTJ:GET#2,B$:
- 1570 GET#2,A$:GET#2,A$:GET#2,B$:DR$=A$+B$:CLOSE1:CLOSE2:SYS65511
- 1580 GOSUB2580
- 1590 D$=S$(9)+S$(10)+S$(11)+S$(12)+S$(13)+S$(14)+S$(15)+S$(16)+S$(17)+S$(18)
- 1600 N$=S$(19)+S$(20)+S$(21)+S$(22)+S$(23)+S$(24):
- 1610 DN$=D$+N$:CLOSE1:CLOSE2:SYS65511
- 1620 PRINT"[147] DISC NAME ",DN$
- 1630 PRINT" ACTUAL ID ",IR$
- 1640 IF AE$ ="A"THEN1660
- 1650 PRINT" TR 18, BL 0 DOES NOT CONTAIN AN 'A'"
- 1655 PRINT" IT DOES CONTAIN AN '";AE$;"'"
- 1660 INPUT" IS THIS THE PROPER SOURCE[146] DISC";QW$:IFQW$<>"Y"THEN1530
- 1670 INPUT" DO YOU WANT TO FORMAT DESTINATION[146]";QQ$:IFQQ$="Y"THEN1740
- 1680 IFNU$="1"ANDQQ$<>"Y"THEN1730
- 1690 PRINT" INSERT DESTINATION[146] THEN PRESS SPACE[146]"
- 1700 K$="A":GETK$:IFK$<>" "THEN1700
- 1710 OPEN1,9,15:PRINT#1,"I":GOSUB860:CLOSE1:SYS65511
- 1720 IFERTHENPRINTER$:GOTO2080
- 1730 GOTO940
- 1740 PRINT" INSERT DESTINATION[146] THEN PRESS SPACE[146]"
- 1750 K$="A":GETK$:IFK$<>" "THEN1750
- 1760 PRINT"[147]"
- 1770 PRINT" DISC NAME ",DN$
- 1780 PRINT" ACTUAL ID ",IR$
- 1790 PRINT" FORMATTING DESTINATION .. PLEASE WAIT":
- 1800 IFIR$=" "THENPRINT"NO ID NUMBER EXISTS":GOTO2080
- 1810 OPEN1,FD,15:PRINT#1,"I"
- 1820 PRINT#1,"N0:"+DN$","+IR$:DN$=""
- 1830 GOSUB860:CLOSE1:POKE53281,49
- 1840 IFERTHENPRINTER$:GOTO2080
- 1850 GOTO1730
- 1860 PRINT"[147] HAS ONE DRIVE BEEN MODIFIED"
- 1870 INPUT" TO DEVICE # 9 Y[157][157][157]";WE$
- 1880 IFWE$="N"THEN1950
- 1890 IFWE$="Y"THEN1910
- 1900 GOTO1860
- 1910 PRINT" DRIVE #8 WILL BE THE SOURCE [146] DRIVE"
- 1920 PRINT" DRIVE #9 WILL BE THE DESTINATION [146]"
- 1930 FORQW=1TO2500:NEXT:POKE 1005,234
- 1940 GOTO1530
- 1950 PRINT"[147] TURN OFF ALL DISK DRIVES "
- 1960 PRINT" EXCEPT DESTINATION [146] DRIVE "
- 1970 FORQW=1TO1000:NEXT:PRINT" PRESS SPACE [146] WHEN DONE":K$="A"
- 1980 GETK$:IFK$<>" "THEN1980
- 1990 OPEN5,8,15
- 2000 PRINT#5,"M-W"CHR$(119)CHR$(0)CHR$(2)CHR$(9+32)CHR$(9+64)
- 2010 CLOSE5:SYS65511
- 2020 PRINT" DEVICE NUMBER CHANGE IS DONE !"
- 2030 PRINT" TURN ON SOURCE [146] DRIVE":FORQW=1TO1000:NEXT:K$="A"
- 2040 FORQW=1TO1000:NEXT:PRINT" PRESS SPACE [146] WHEN DONE":K$="A"
- 2050 GETK$:IFK$<>" "THEN2050
- 2060 POKE1005,234
- 2070 GOTO1530
- 2080 PRINT"[147] "ER$
- 2090 CLOSE1:CLOSE2:CLOSE3:CLOSE5:SYS65511
- 2100 PRINT" ";
- 2110 PRINT" ** ERROR PLEASE TRY AGAIN ** ";
- 2120 PRINT" "
- 2130 FORQX=1TO4:POKE53281,11:FORQW=1TO500:NEXT:POKE53281,246:FORQW=1TO500:NEXT
- 2140 NEXT:GOTO1390
- 2150 PRINT"[147] ";
- 2160 PRINT" * * * * BACKUP 228 * * * * ";
- 2170 PRINT" "
- 2180 PRINT"[159] IF THIS PROGRAM HAS DIFFICULTY "
- 2190 PRINT" READING A BLOCK OF INFORMATION,"
- 2200 PRINT" THE BLOCK IS PROBABLY BAD."
- 2210 PRINT" ";
- 2220 PRINT" IN THE LOWER PORTION OF THE SCREEN ";
- 2230 PRINT" THREE NUMBERS WILL APPEAR DURING ";
- 2240 PRINT" THE READ OR WRITE. ";
- 2250 PRINT" ";
- 2260 PRINT" THE FIRST NUMBER IS THE TRACK. ";
- 2270 PRINT" THE SECOND NUMBER IS THE SECTOR. ";
- 2280 PRINT" THE THIRD NUMBER IS A COUNTER, THIS ";
- 2290 PRINT" KEEPS TRACK OF THE TOTAL BLOCKS. ";
- 2300 PRINT" "
- 2310 PRINT" PRESS RETURN [146] FOR MORE INSTRUCTIONS"
- 2320 PRINT" PRESS SPACE [146] TO COPY DISKS"
- 2330 K$="A":GETK$:IFK$=""THEN2330
- 2340 IFK$=CHR$(13)THEN2360
- 2350 GOTO1400
- 2360 PRINT"[147] ";
- 2370 PRINT" * * * * BACKUP 228 * * * * ";
- 2380 PRINT" "
- 2390 PRINT"[159] THE BAM METHOD OF BACKUP WILL"
- 2400 PRINT" WORK ON MOST DISKS. IF THE BAM "
- 2410 PRINT" WON'T WORK TRY THE DIRECT METHOD."
- 2420 PRINT" IF THE DIRECT METHOD WON'T WORK "
- 2430 PRINT" YOU MAY NEED TO TRY BAD BLOCKS."
- 2440 PRINT" ";
- 2450 PRINT" IF YOU NEED TO COPY A PORTION OF THE ";
- 2460 PRINT" DISK, YOU CAN SPECIFY WHICH TRACK ";
- 2470 PRINT" AND SECTOR YOU WISH TO START ON. ";
- 2480 PRINT" YOU MAY ALSO SPECIFY WHICH TRACK TO ";
- 2490 PRINT" FINISH ON. ";
- 2500 PRINT" IF YOU DO NOT WISH TO START ON A ";
- 2510 PRINT" SPECIAL TRACK JUST PRESS RETURN ";
- 2520 PRINT" AT THE PROMPTS. ";
- 2530 PRINT" "
- 2540 PRINT" PRESS SPACE [146] TO MAKE COPIES "
- 2550 A$="A":GETK$:IFK$<>CHR$(32)THEN2550
- 2560 GOTO1400
- 2570 CLOSE15:OPEN15,8,15:PRINT#15,"I":CLOSE15:SAVE"@0:BACK-UP 228",8
- 2580 CLOSE5:CLOSE15:OPEN15,8,15,"I0:":OPEN5,8,5,"#":
- 2590 PRINT#15,"U1";5;0;18;0
- 2600 GET#5,AE$:GET#5,AE$:GET#5,AE$:CLOSE5
- 2610 PRINT#15,"M-R";CHR$(18);CHR$(00):GET#15,I$
- 2620 PRINT#15,"M-R";CHR$(19);CHR$(00):GET#15,D$
- 2630 CLOSE15
- 2640 IR$=I$+D$
- 2650 RETURN
-